"""
__author__ = 'heyanmin'
__time__ = '2021/8/7 4:57 下午'
"""
""" 
队列：
顺序队列：普通队列、优化队列、循环队列 （先进先出）
链式队列
阻塞队列，入队和出队可以等待。避免同时入队，给其中一个枷锁，之后解锁
从尾入队，从头出队
"""
"""递归算法：f(n)=f(n-1) 其中 f(1)=1
递归就是有去（递去）有回（归来）
什么情况可以使用递归 ？
一个问题可以拆分成子问题.
这些问题求解思路相同（数据规模不同）
拥有终止条件
#递归耗内存
"""
# Python实现N级台阶，一次可以走1步，2步，3步，一共多少种上楼梯方法
def go_upstair(n):
    if n== 1:
        return 1
    if n == 2:
        return 2
    if n == 3:
        return 4
    else:
        return go_upstair(n-1)+go_upstair(n-2)+go_upstair(n-3)
n = input ("请输入台阶数：")
try:
    n = int(n)
    steps = go_upstair(n)
    print(steps)
except Exception as e:
    print("不是整数")
